package org.voovan.http.server;

import org.voovan.http.server.context.WebContext;
import org.voovan.tools.TObject;

/**
 * MIME 相关处理
 *
 * @author helyho
 *
 * Voovan Framework.
 * WebSite: https://github.com/helyho/Voovan
 * Licence: Apache v2 License
 */
public class MimeTools {

//	private static String mimeTypeRegex = MimeTools.buildMimeMatchRegex(WebContext.getMimeDefine());

	private MimeTools(){

	}

//	/**
//	 * 获取 MIME 正则表达式
//	 * @return MIME 正则表达式
//     */
//	public static String getMimeTypeRegex(){
//		return mimeTypeRegex;
//	}
//
//	/**
//	 * 根据 MIME 的配置拼装匹配类型的正则表达式
//	 * @param mimeTypes MIME 类型
//	 * @return 匹配MIME类型的正则表达式
//	 */
//	private static String buildMimeMatchRegex(Map<String, Object> mimeTypes){
//		String mimeTypeRegex = "";
//		StringBuilder mimeTypeRegexSB = new StringBuilder();
//		for(String fileExtension : mimeTypes.keySet()){
//			mimeTypeRegexSB.append("\\.");
//			mimeTypeRegexSB.append(fileExtension);
//			mimeTypeRegexSB.append("$|");
//		}
//
//		mimeTypeRegex = mimeTypeRegexSB.toString();
//		mimeTypeRegex = TString.removeSuffix(mimeTypeRegex)+"$";
//		return mimeTypeRegex;
//	}

	/**
	 * 根据文件扩展名获取 MIME 类型
	 * @param fileExtension  文件扩展名
	 * @return MIME 类型
	 */
	public static String getMimeByFileExtension(String fileExtension){
		Object mimeTypeObj = WebContext.getMimeDefine().get(fileExtension.toLowerCase());
		return TObject.nullDefault(mimeTypeObj,"application/octet-stream").toString();
	}

//	/**
//	 * 判断是否是 Mime 类型文件
//	 * @param path  请求路径
//	 * @return  是否是Mime 类型文件
//	 */
//	public static boolean isMimeFile(String path){
//		return TString.regexMatch(path, mimeTypeRegex)>0?true:false;
//	}
}
